敏捷开发
敏捷框架比较
https://www.toutiao.com/a6491064662996566542/
Scrum
Scrum是一个管理框架。
* User Story * Task。它可以与用户故事相关或不相关。 * Backlog。用户故事和未来Sprint任务的列表。 * Sprint backlog。从Backlog的当前Sprint中挑选用户故事和任务列表(又名“工作项目”)。 * Product increment。在Sprint结束时交付的一种潜在可交付功能块。 * Extensions。像Burndown Chart、Velocity等的报告,用于跟踪团队的进展。
角色
* 开发团队。包括开发人员、QA工程师、UI/UX设计师、业务分析师以及其他需要的人员。Scrum团队通常有3到9名成员。当9个人还不够时,团队就一分为二了。 * Scrum Master。主持每日Scrum会议、策划/更新/回顾会议,并帮助团队成员解决沟通问题。Scrum Master不是团队成员,所以他们可以同时与多个团队合作。 * 产品所有者。利益相关者的代表,将Scrum团队的愿景(作为用户故事的基础)传达给Scrum团队,在每个Sprint结束时优先考虑用户故事,并接受或拒绝他们。
Kanban
Kanban框架是由丰田工程师Taiichi Ohno发明的。
原则
1. 专注—减少多任务; 2. 减少浪费; 3. 客户的需求放在第一位(即他们的业务需求-ROI);
Kanban和Scrum的关键区别在于:
Kanban是连续的,而Scrum是迭代的。 Kanban更适合在Sprint期间有大量计划外工作(支持问题;紧急修复;紧急功能请求)的团队。 通过这种方式,团队可以随时重新排序任务,不再需要等待Sprint结束。
Lean
Lean大量借用了Kanban
Lean尽量避免浪费,最大限度地为客户带来价值。
与Kanban不同的是,Lean有一些关于工程实践的规定(例如TDD)。与此同时,Lean对交付时间的要求不那么严格,团队可能随时准备部署。
XP - 极限编程
XP不只是简单的平等配对编程,XP还提供了一个流程管理算法
实践
1. 计划游戏; 2. 测试驱动开发(“先写单元测试”); 3. 配对编程; 4. 团队(客户/程序的实际用户可用于反馈); 5. 持续集成; 6. 重构设计改进; 7. 小版本; 8. 编码标准; 9. 集体代码所有权; 10. 设计简单; 11. 系统隐喻(以程序员,客户和其他人理解的方式命名事物); 12. 可持续性。